
package accesoarchivos;
import constantes.Constantes;
import entidades.Producto;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;


public class ProductoArchivo {
	
	
	
	
    public void EscribirArchivoProducto(ArrayList<Producto> arrayList) {

        FileWriter fichero = null;
        PrintWriter pw = null;
        try {
            fichero = new FileWriter(Constantes.archivoProductos);
            pw = new PrintWriter(fichero);
            
      

            for (Producto producto : arrayList) {
                String linea = producto.getCodigo() + Constantes.stringToken +
                		producto.getDescripcion() + Constantes.stringToken +
                        producto.getPrecio() + Constantes.stringToken +
                        producto.getCategoria() + Constantes.stringToken +
                        producto.getUnidadMedida() + Constantes.stringToken +
                        producto.getStock(); 
                pw.println(linea);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            if (null != fichero) {
                try {
                    fichero.close();
                } catch (IOException ex) {
                }
            }
            try {
            } catch (Exception e2) {
            }
        }

    }


    public ArrayList<Producto> LeerArchivoProducto() {

    	ArrayList<Producto> arrayListProducto = new ArrayList<Producto>();
      
        try {
        	Producto producto = null;
        	

            FileReader fr = new FileReader(Constantes.archivoProductos);
         
            BufferedReader br = new BufferedReader(fr);

            String linea = "";

            while ((linea = br.readLine()) != null) {
            	producto = new Producto();
                StringTokenizer st;
                st = new StringTokenizer(linea, Constantes.stringToken);
                producto.setCodigo(Integer.valueOf(st.nextToken().trim()));
                producto.setDescripcion(st.nextToken().trim());
                producto.setPrecio(Double.valueOf(st.nextToken().trim()));
                producto.setCategoria(Integer.valueOf(st.nextToken().trim()));              
                producto.setUnidadMedida(Integer.valueOf(st.nextToken().trim()));
                producto.setStock(Integer.valueOf(st.nextToken().trim()));  
                arrayListProducto.add(producto);             
            }

            br.close();
        } catch (Exception ex) {
        }

        return arrayListProducto;
    }
    
    
    
}
